<?php
/**
 * Выводит оценки голосования
 * 
 * 
 * @author Дмитрий Кузьма <kouzma.d@gmail.com>
 * @version 1.0
 */
class View_Poll {

  public function __construct() {}
  /**
   * Возвращает оформленный вывод средней оценки
   *
   * @param unknown_type $averageMark
   * @param unknown_type $minusCount
   * @param unknown_type $plusCount
   * @return unknown
   */
  public static function showAverageMark($averageMark, $minusCount, $plusCount, $markType = 0){
  	if ($averageMark == NULL)
  		$averageMark = 0;
  	if ($plusCount == NULL)
  		$plusCount = 0;
  	if ($minusCount == NULL)
  		$minusCount = 0;
  	if ($markType == 0)
  		return '<strong title="Рейтинг">' . $averageMark . '
  	  			<em class="top_rait" title="Проголосовавших за">+' . $plusCount . '</em>
  	  			<em class="bottom_rait" title="Проголосовавших против">-' . $minusCount . '</em>
  	  		</strong>';
  	elseif ($markType == 1)
  		return 'Предложений: ' . Poll::calculateMark($minusCount, $plusCount, 1);
  }
	/**
	 * Выводит стандартную форму для голосования
	 *
	 * @param integer $essenceId
	 * @param integer $essenceType
	 * @param integer $showPoll
	 * @param integer $averageMark
	 */
  public static function showMark ($essenceId, $essenceType, $sessionUserPoll, $averageMark = NULL, $minusCount = 0, $plusCount = 0, $returnFlag = false, $markType = 0, $idFolder = NULL) {
  if (isset($idFolder)) $idFolder = ', ' . $idFolder;
	$text = '';
	if ($markType == 1){
//		$text .= '<strong class="tem_rait" >' . $averageMark . '</strong>';
		
  	if ($sessionUserPoll === NULL) {//Пользователь не голосовал
      $objSession = User_Session::instance();
      $userId = $objSession->getUserId();
        if (!$userId)
          $text .= '<a class="plus_temNonActive" href="" onclick = "return false;" title="" ></a>';
        else
          $text .= '<a class="plus_tem" href="" title="Голосовать за" onclick="poll.vote(this, ' . $essenceType . ', ' . $essenceId . ', 1, 1); return false;" ></a>';  
        if (! $userId)
        	$text .= '<a class="minus_temNonActive" href="" onclick = "return false;" title="" ></a>';
       else
         $text .= '<a class="minus_tem" href="" title="Голосовать против" onclick="poll.vote(this, ' . $essenceType . ', ' . $essenceId . ', -1, 1); return false;" ></a>';
    }
    elseif ($sessionUserPoll === 0) {//Это материал пользователя
    	$text .= '<a class="plus_temNonActive" href="" onclick = "return false;" title="" ></a>';
    	$text .= '<a class="minus_temNonActive" href="" onclick = "return false;" title="" ></a>';
    }
    else { //пользователь голосовал
          if ($sessionUserPoll > 0)
            $text .= '<a class="plus_tem" href="" onclick = "return false;" title="Вы проголосовали за" ></a>';
          else
            $text .= '<a class="plus_temNonActive" href="" onclick = "return false;" title="" ></a>';          
          if ($sessionUserPoll < 0)
            $text .= '<a class="minus_tem" href="" onclick = "return false;" title="Вы проголосовали против" ></a>';
          else
            $text .= '<a class="minus_temNonActive" href="" onclick = "return false;" title="" ></a>';
    }	
		if ($returnFlag)
			return $text;
		echo $text;
		
	}else {
    $objSession = User_Session::instance();
    $userId = $objSession->getUserId();		
		if (User_User::checkIfUser('admin', $userId)) {
	  	$text .= '<div class="rait" attrIdForPoll="' . $essenceType . '_' . $essenceId . '">';
	  	$text .= self::showAverageMark($averageMark, $minusCount, $plusCount);
	  	$text .= '</div>';
    }elseif ($sessionUserPoll === NULL)
    	$text .= '<div class="rait" attrEmpty="empty" attrIdForPoll="' . $essenceType . '_' . $essenceId . '"></div>';    
    else {
	  	$text .= '<div class="rait">';
	  	$text .= self::showAverageMark($averageMark, $minusCount, $plusCount);
	  	$text .= '</div>';    	
    }     
    $text .= '<ul class="right_reiting">';
  	if ($sessionUserPoll === NULL) {//Пользователь не голосовал

        if (!$userId)
          $text .= '<li><a class="dobavutNonActive" href="" onclick = "return false;" title="" ></a></li>';
        else
          $text .= '<li><a class="dobavut" href="" title="Голосовать за" onclick="poll.vote(this, ' . $essenceType . ', ' . $essenceId . ', 1, 0' . $idFolder . '); return false;" ></a></li>';  
        if (! $userId)
        	$text .= '<li><a class="otbavutNonActive" href="" onclick = "return false;" title="" ></a></li>';
       else
        	$text .= '<li><a class="otbavut" href="" title="Голосовать против" onclick="poll.vote(this, ' . $essenceType . ', ' . $essenceId . ', -1, 0' . $idFolder . '); return false;" ></a></li>';
    }
    elseif ($sessionUserPoll === 0) {//Это материал пользователя
    	$text .= '<li><a class="dobavutNonActive" href="" onclick = "return false;" title="" ></a></li>';
      $text .= '<li><a class="otbavutNonActive" href="" onclick = "return false;" title="" ></a></li>';
          
    }
    else { //пользователь голосовал
          if ($sessionUserPoll > 0)
            $text .= '<li><a class="dobavut" href="" title="Вы проголосовали за" onclick="return false;"></a></li>';
          else
            $text .= '<li><a class="dobavutNonActive" href="" onclick = "return false;" title="" ></a></li>';          
          if ($sessionUserPoll < 0)
            $text .= '<li><a class="otbavut" href="" title="Вы проголосовали против" onclick="return false;"></a></li>';
          else
            $text .= '<li><a class="otbavutNonActive" href="" onclick = "return false;" title="" ></a></li>';
    }
    $text .= '</ul>';
    if ($returnFlag)
    	return $text;
    else echo $text;
	}

  }

	/**
	 * Выводит форму для голосования за пользователя
	 *
	 * @param integer $essenceId
	 * @param integer $essenceType
	 * @param integer $showPoll
	 * @param integer $averageMark
	 */
  public static function showUserMark ($userId, $sessionUserPoll, $averageMark = 0) {
  	if ($sessionUserPoll === NULL) {//Пользователь е голосовал
      $objSession = User_Session::instance();
      $sessUserId = $objSession->getUserId();
	  	echo '<div id="userRating"><div><div>';
	  	  echo '<p>Рейтинг: <span class="ratingAmount">' . $averageMark . '</span></p>';
	  	  if (! $sessUserId)
	  	    echo '<img src="' . W_IMAGES . 'icons/down.gif" alt="" />';
	  	  else
	  	  	echo '<img src="' . W_IMAGES . 'icons/down.gif" alt="Голсовать против" onclick="user.vote(this, ' . $userId . ', -1);return false;" />';
	  	  if (! $sessUserId)
	  	  	echo '<img src="' . W_IMAGES . 'icons/up.gif" alt="" />';
	  	  else
	  	  	echo '<img src="' . W_IMAGES . 'icons/up.gif" alt="Голосовать за" onclick="user.vote(this, ' . $userId . ', 1);" />';
	  	echo '</div></div></div>';
  	}
  	/*elseif ($sessionUserPoll === 0) {//Это сам пользователя
		
    }*/
    else { //пользователь голосовал
	  	echo '<div id="userRating"><div><div>';
	  	  echo '<p>Рейтинг: <span>' . $averageMark . '</span></p>';
	  	  if ($sessionUserPoll > 0)
	  	    echo '<img src="' . W_IMAGES . 'icons/downGrey.gif" alt="" />';
	  	  else
	  	  	echo '<img src="' . W_IMAGES . 'icons/down.gif" alt="Вы голосовали против" onclick="user.vote(this, ' . $userId . ', -1);return false;" />';
	  	  if ($sessionUserPoll < 0)
	  	  	echo '<img src="' . W_IMAGES . 'icons/upGrey.gif" alt="" />';
	  	  else
	  	  	echo '<img src="' . W_IMAGES . 'icons/up.gif" alt="Вы голосовали за" onclick="user.vote(this, ' . $userId . ', 1);" />';
	  	echo '</div></div></div>';
    }
  }
}
?>